package com.xnyzc.lhy.order.service.vehicle;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xnyzc.lhy.order.entity.order.OaCOrder;
import com.xnyzc.lhy.order.entity.result.vehicle.DriverVehInfo;
import com.xnyzc.lhy.order.entity.vehicle.OaDDriverVehicle;
import com.xnyzc.lhy.order.entity.vehicle.OaSysVehicle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Author: huxuekuo
 * @Date: 2019-08-05 17:18
 * @Description:
 */
public interface IOaDDriverVehicleService extends IService<OaDDriverVehicle> {

    /**
     * netty 获取司机车辆信息
     *
     * @param vehicleId
     * @return
     */
    DriverVehInfo getDDriverVehicleInfo(String vehicleId);

    /**
     * 获取车辆信息
     *
     * @param vehicleId
     * @return
     */
    OaSysVehicle getSysVehicleInfo(Long vehicleId);

    /**
     * netty 获取里程费
     *
     * @return
     */
    BigDecimal getMileageFee(String rulesId, Date date, BigDecimal subtract, BigDecimal totailMileage, String tag);

    /**
     * netty 获取时长费
     *
     * @return
     */
    BigDecimal getTimeFee(String id, BigDecimal currentTime, BigDecimal totalTime, String tag, Date startDate);

    /**
     * 获取时长费
     *
     * @param oaCOrder
     * @return
     */
    OaCOrder getTimeFee(OaCOrder oaCOrder);

    /**
     * 获取里程费
     *
     * @param oaCOrder
     * @return
     */
    OaCOrder getMileageFee(OaCOrder oaCOrder);

    /**
     * netty 获取远途费
     *
     * @return
     */
    BigDecimal getDistanceFee(String rulesId, Date date, BigDecimal subtract, BigDecimal totailMileage, String tag);

    /**
     * 获取远途费
     *
     * @param oaCOrder
     * @return
     */
    OaCOrder getDistanceFee(OaCOrder oaCOrder);

    /**
     * 获取抽佣后的金额
     *
     * @param rulesId      计价规则
     * @param totalBillFee 里程费+时长费+远途费 的总金额
     * @return
     */
    BigDecimal getDrawFee(String rulesId, BigDecimal totalBillFee);
}
